3.5.6 Editing and debugging formulas
You
can edit individual formulas in the minibuffer or directly in the
field. Org can also prepare a special buffer with all active
formulas of a table. When offering a formula for editing, Org
converts references to the standard format (like B3
or D&) if possible. If you prefer to only work
with the internal format (like @3$2 or
$4), configure the variable
org-table-use-standard-references.
- C-c = or C-u C-c
=
(
org-table-eval-formula)
- Edit the formula associated with the current column/field
in the minibuffer. See Column formulas, and
Field
formulas.
- C-u C-u C-c =
(
org-table-eval-formula)
- Re-insert the active formula (either a field formula, or a
column formula) into the current field, so that you can edit it
directly in the field. The advantage over editing in the
minibuffer is that you can use the command C-c ?.
- C-c ?
(
org-table-field-info)
- While editing a formula in a table field, highlight the
field(s) referenced by the reference at the cursor position in
the formula.
- C-c }
- Toggle the display of row and column numbers for a table,
using overlays (org-table-toggle-coordinate-overlays).
These are updated each time the table is aligned; you can force
it with C-c C-c.
- C-c {
- Toggle the formula debugger on and off (org-table-toggle-formula-debugger). See
below.
- C-c '
(
org-table-edit-formulas)
-
Edit all formulas for the current table in a special buffer,
where the formulas will be displayed one per line. If the
current field has an active formula, the cursor in the
formula editor will mark it. While inside the special buffer,
Org will automatically highlight any field or range reference
at the cursor position. You may edit, remove and add
formulas, and use the following commands:
- C-c C-c or
C-x C-s
(
org-table-fedit-finish)
- Exit the formula editor and store the modified
formulas. With C-u prefix, also apply the new
formulas to the entire table.
- C-c C-q
(
org-table-fedit-abort)
- Exit the formula editor without installing changes.
- C-c C-r
(
org-table-fedit-toggle-ref-type)
- Toggle all references in the formula editor between
standard (like
B3) and internal (like
@3$2).
- <TAB>
(
org-table-fedit-lisp-indent)
- Pretty-print or indent Lisp formula at point. When in a
line containing a Lisp formula, format the formula
according to Emacs Lisp rules. Another <TAB>
collapses the formula back again. In the open formula,
<TAB> re-indents just like in Emacs Lisp mode.
- M-<TAB>
(
lisp-complete-symbol)
- Complete Lisp symbols, just like in Emacs Lisp mode.
-
S-<up>/<down>/<left>/<right>
- Shift the reference at point. For example, if the
reference is
B3 and you press
S-<right>, it will become C3.
This also works for relative references and for hline
references.
- M-S-<up>
(
org-table-fedit-line-up)
- M-S-<down>
(
org-table-fedit-line-down)
- Move the test line for column formulas in the Org
buffer up and down.
- M-<up>
(
org-table-fedit-scroll-down)
- M-<down>
(
org-table-fedit-scroll-up)
- Scroll the window displaying the table.
- C-c }
- Turn the coordinate grid in the table on and off.
Making a table field blank does not remove the formula
associated with the field, because that is stored in a different
line (the ‘#+TBLFM’ line)—during the next
recalculation the field will be filled again. To remove a formula
from a field, you have to give an empty reply when prompted for
the formula, or to edit the ‘#+TBLFM’ line.
You may edit the
‘#+TBLFM’
directly and re-apply the changed equations with C-c
C-c in that line or with the normal recalculation commands
in the table.
Debugging formulas
When the
evaluation of a formula leads to an error, the field content
becomes the string ‘#ERROR’. If you would like see what is
going on during variable substitution and calculation in order to
find a bug, turn on formula debugging in the Tbl
menu and repeat the calculation, for example by pressing C-u
C-u C-c = <RET> in a field. Detailed information will
be displayed.